Welcome to pandas!

8.10 join表格横向拼接(按索引号或标签)

pd.concat()函数既可以做纵向拼接,也可以做横向拼接,但横向拼接成功比较简单,df.join()函数也是以表格的行索引为连接做横向拼接,但连接键设置和拼接方式更为灵活。结构以下:

df.join(other,on=None,how=”left” ,lsuffix=””,rsuffix=””,sort=False)

other:df.join()函数中的df既可以视为拼接的左表,而other参数可以看到拼接的右表,该参数可以是单个DataFrame或单个Series,如果是多个则组织在列表。

on :指定df表(左表中设置为索引行的列,相当于做关联的列,可以是多列。

How :左表和右表的联接方式,分为left(左联接),right(右联接),outer(外联接),inner(内联接),默认为left(左联接)

Lsuffix :左列表后缀

rsuffix :右列表名后缀

Sort :按字典顺序排序结果表格,如果为False,则连接键的顺序取于连接类型(how关键字)


import pandas as pd

y19=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2019年", index_col=0)

y20=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2020年", index_col=0)

print (y19)

print (y20)

df=y19.join(other=y20,

lsuffix= "19",

rsuffix= "20",

)

print (df)

返回:

部门 业绩
业务员
张三 销售1部 153
李四 销售2部 228
王麻子 销售2部 189
小韦 销售3部 185
许麻子 销售1部 265
老刘 销售1部 143

部门 业绩
业务员
张三 销售1部 180
李四 销售2部 124
王麻子 销售2部 125
许麻子 销售1部 215
老刘 销售1部 171
老王 销售1部 113

部门19 业绩19 部门20 业绩20
业务员
张三 销售1部 153 销售1部 180.0
李四 销售2部 228 销售2部 124.0
王麻子 销售2部 189 销售2部 125.0
小韦 销售3部 185 NaN NaN
许麻子 销售1部 265 销售1部 215.0
老刘 销售1部 143 销售1部 171.0